Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
cómo corregir "FirebaseError: el tipo no coincide con la instancia esperada". en la transacción de base de fuego. Reaccionar.js

en mi sitio, cuando se elimina una sección, quiero que se eliminen todos los elementos de esa sección, por lo que estoy usando una transacción

 const sectionRef = db .collection('items') .where('subSection', '==', sectionName); db.runTransaction((transaction) => { return transaction .get(sectionRef) .then((data) => { data.docs.map((doc) => { transaction.delete(doc); }); }) .catch((e) => { console.log('transaction failed', e); }); }); };

Estoy teniendo el siguiente error

(FirebaseError): el tipo no coincide con la instancia esperada. ¿Pasaste una referencia de un SDK de Firestore diferente?

aquí está la configuración de base de fuego

 firebaseConfig = { apiKey: process.env.REACT_APP_PROD_API_KEY, authDomain: process.env.REACT_APP_PROD_AUTH_DOMAIN, projectId: process.env.REACT_APP_PROD_PROJECT_ID, storageBucket: process.env.REACT_APP_PROD_STORAGE_BUCKET, messagingSenderId: process.env.REACT_APP_PROD_MESSAGING_SENDER_ID, appId: process.env.REACT_APP_PROD_APP_ID, measurementId: process.env.REACT_APP_PROD_MEASUREMENT_ID, }; const firebaseApp = firebase.initializeApp(firebaseConfig); const db = firebaseApp.firestore();

¿alguien puede ver el problema?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Con JS SDK (y los otros SDK de cliente: iOS, Android, C++) no puede obtener los documentos de una colección (o de una consulta) en una Transacción .

Como verá en el documento, debe pasar una DocumentReference al método get() (de una Transacción).

Puede llamar a este método get() varias veces en la transacción, pero no puede pasarle una CollectionReference .


Por otro lado, esto es posible a través de los SDK de administración (es decir, las bibliotecas del servidor ). Por ejemplo, con el de Node.js, consulte el documento para el método get() .

Puede obtener más detalles sobre la diferencia entre estos SDK y sus motivos en este elemento de documentación .


Por lo tanto, dado que utiliza una consulta, significa que ahora no indica por adelantado (es decir, al codificar) la lista de documentos para leer en la Transacción. Por lo tanto, debe usar Admin SDK, por ejemplo, en una función de nube.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda